package com.woniu.lottery.entity;

import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 抽奖算法上下文对象
 * 封装抽奖过程中的所有必要信息
 */
@Data
@Builder
public class LotteryContext {
    /**
     * 当前用户ID
     */
    private Long userId;

    /**
     * 抽奖活动实体
     */
    private LotteryActivity activity;

    /**
     * 所有可用奖品列表
     */
    private List<LotteryPrize> prizes;

    /**
     * 用户历史参与次数
     */
    private Integer userParticipateCount;

    /**
     * 当前活动已抽奖次数
     */
    private Integer totalParticipateCount;

    /**
     * 附加参数(扩展用)
     */
    private Object extParams;

    // 可以添加一些便捷方法

    /**
     * 获取剩余奖品数量
     */
    public int getRemainingPrizes() {
        return activity.getRemainingPrize();
    }

    /**
     * 获取活动总奖品数
     */
    public int getTotalPrizes() {
        return activity.getTotalPrize();
    }
}
